package com.xadmin.sys.rbac.mapper;

import com.xadmin.sys.common.utils.Page;
import com.xadmin.sys.rbac.pojo.Menu;
import com.xadmin.sys.rbac.pojo.Role;
import com.xadmin.sys.rbac.pojo.User;
import com.xadmin.sys.rbac.pojo.UserAndRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author vic Ly
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {
    /**
     * @param username
     * @return User
     * @Description 根据username获取个人信息
     */
    User getByName(String username);
    /**
     * @Description 查询用户所有权限
     * @Param id
     * @return Menu
     */
    List<Menu> getMenuByUserId(Integer userId);
    /**
     * @Description 查询用户所有角色
     * @Param userId
     * @return Role
     */
    List<Role> getRoleByUserId(Integer userId);
    /**
     * @Description 分页查询
     * @Param  page
     * @return  List<User>
     */
    List<User> getAllByPage(Page<User> page);
    /**
     * @Description 查询总数
     * @Param  page
     * @return  int
     */
    int getCountByPage(Page<User> page);
    /**
     * @Description 给用户批量添加角色
     * @Param  idList
     * @return  int
     */
    int addRoles(List<UserAndRole> idList);
    /**
     * @Description 批量删除用户角色
     * @Param idList
     * @return int
     */
    int deleteRoles(Integer userId);

    int updateById(User user);

    int getCount();

}
